﻿package view.uilt
{
    import flash.utils.*;

    public class RoleUtil extends Object
    {

        public function RoleUtil()
        {
            return;
        }// end function

        public static function getAttribute(param1:int, param2:int, param3:int) : Dictionary
        {
            var _loc_26:Number = NaN;
            var _loc_27:Number = NaN;
            var _loc_28:Number = NaN;
            var _loc_29:Number = NaN;
            var _loc_30:Number = NaN;
            var _loc_31:Number = NaN;
            var _loc_32:Number = NaN;
            var _loc_4:* = new Dictionary();
            new Dictionary()["rein"] = param2;
            var _loc_5:* = Math.pow(Roledata.LvCoe - param1 / Roledata.LvPar, param1);
            var _loc_6:* = Math.pow(Roledata.ReinCoe - param2 / Roledata.ReinPar, param2);
            var _loc_7:* = int(Math.round(param1 / 15 + param2 / 2));
            if (int(Math.round(param1 / 15 + param2 / 2)) > 9)
            {
                _loc_7 = 9;
            }
            var _loc_8:* = 0.5 - param1 / 1000 - param2 / 200;
            var _loc_9:Number = 0.4;
            var _loc_10:* = 1000 - param2 * 20;
            var _loc_11:Number = 0.2;
            var _loc_12:Number = 0.3;
            var _loc_13:* = _loc_5 * _loc_6 * Roledata.CareerInit / 0.25;
            var _loc_14:* = _loc_5 * _loc_6 * Roledata.CareerInit / 0.25 * Roledata.HpRate;
            var _loc_15:Number = 0;
            var _loc_16:Number = 0;
            var _loc_17:Number = 0;
            var _loc_18:Number = 0;
            var _loc_19:Number = 0;
            var _loc_20:Number = 0;
            var _loc_21:Number = 0;
            var _loc_22:Number = 0;
            var _loc_23:Number = 0;
            var _loc_24:Number = 0;
            var _loc_25:* = 0.025 * (param1 / 80 + param2 / 20);
            if (param3 == 1)
            {
                _loc_4["maxHp"] = int(_loc_14 * Roledata.WarriorHpCoe);
                _loc_4["heathRecover"] = int(_loc_14 * Roledata.WarriorHpCoe / 120 * 0);
                _loc_26 = _loc_14 * 0.3 * Roledata.WarriorMpCoe;
                _loc_4["magicRecover"] = int(_loc_14 * Roledata.WarriorHpCoe / 108 + 20 + _loc_26 * _loc_25);
                _loc_4["maxMp"] = int(_loc_26);
                _loc_15 = _loc_13 * _loc_10 * _loc_10 / 10000000 / (1 - _loc_11) / (1 + _loc_12);
                _loc_16 = _loc_15 * Roledata.AttackRate;
                _loc_17 = _loc_16 * 2 / (1 + _loc_8 + (1 - _loc_8) * _loc_7 / 9);
                _loc_18 = _loc_17 * _loc_8;
                _loc_27 = _loc_17 * 2 / 3;
                _loc_28 = _loc_18 * 2 / 3;
                _loc_4["phyLowAtt"] = int(_loc_18);
                _loc_4["phyHighAtt"] = int(_loc_17);
                _loc_4["magicLowAtt"] = int(_loc_28);
                _loc_4["magicHighAtt"] = int(_loc_27);
                _loc_4["taoLowAtt"] = int(_loc_28);
                _loc_4["taoHighAtt"] = int(_loc_27);
                _loc_19 = _loc_15 * (1 + _loc_12) * _loc_11;
                _loc_20 = _loc_19 * Roledata.DefendRate;
                _loc_21 = _loc_20 / (_loc_9 + 0.5 - _loc_9 * 0.5);
                _loc_22 = _loc_21 * _loc_9;
                _loc_29 = 1 + param1 * Roledata.WarriorPhyCoe;
                _loc_30 = 1 + param1 * Roledata.WarriorMigCoe;
                _loc_4["phyLowDef"] = int(_loc_22 * _loc_29);
                _loc_4["phyHighDef"] = int(_loc_21 * _loc_29);
                _loc_4["magicLowDef"] = int(_loc_22 * _loc_30);
                _loc_4["magicHighDef"] = int(_loc_21 * _loc_30);
                _loc_31 = (param1 / 7 + 1 + param2 + 10) * 2;
                _loc_32 = _loc_31 / 0.97;
                _loc_23 = Math.floor(_loc_31 * 0.3);
                _loc_4["dodge"] = int(_loc_23);
                _loc_24 = Math.floor(_loc_32 * 0.3);
                _loc_4["accurate"] = int(_loc_24);
            }
            else if (param3 == 2)
            {
                _loc_4["maxHp"] = int(_loc_14 * Roledata.WizardHpCoe);
                _loc_4["heathRecover"] = int(_loc_14 * Roledata.WizardHpCoe / 120 * 0);
                _loc_26 = _loc_14 * 0.3 * Roledata.WizardMpCoe;
                _loc_4["magicRecover"] = int(_loc_14 * Roledata.WizardHpCoe / 108 + 20 + _loc_26 * _loc_25);
                _loc_4["maxMp"] = int(_loc_26);
                _loc_15 = _loc_13 * _loc_10 * _loc_10 / 10000000 / (1 - _loc_11) / (1 + _loc_12);
                _loc_16 = _loc_15 * Roledata.AttackRate;
                _loc_17 = _loc_16 * 2 / (1 + _loc_8 + (1 - _loc_8) * _loc_7 / 9);
                _loc_18 = _loc_17 * _loc_8;
                _loc_27 = _loc_17 * 2 / 3;
                _loc_28 = _loc_18 * 2 / 3;
                _loc_4["phyLowAtt"] = int(_loc_28);
                _loc_4["phyHighAtt"] = int(_loc_27);
                _loc_4["magicLowAtt"] = int(_loc_18);
                _loc_4["magicHighAtt"] = int(_loc_17);
                _loc_4["taoLowAtt"] = int(_loc_28);
                _loc_4["taoHighAtt"] = int(_loc_27);
                _loc_19 = _loc_15 * (1 + _loc_12) * _loc_11;
                _loc_20 = _loc_19 * Roledata.DefendRate;
                _loc_21 = _loc_20 / (_loc_9 + 0.5 - _loc_9 * 0.5);
                _loc_22 = _loc_21 * _loc_9;
                _loc_29 = 1 + param1 * Roledata.WizardPhyCoe;
                _loc_30 = 1 + param1 * Roledata.WizardMigCoe;
                _loc_4["phyLowDef"] = int(_loc_22 * _loc_29);
                _loc_4["phyHighDef"] = int(_loc_21 * _loc_29);
                _loc_4["magicLowDef"] = int(_loc_22 * _loc_30);
                _loc_4["magicHighDef"] = int(_loc_21 * _loc_30);
                _loc_31 = (param1 / 7 + 1 + param2 + 10) * 2;
                _loc_32 = _loc_31 / 0.97;
                _loc_23 = Math.floor(_loc_31 * 0.3);
                _loc_4["dodge"] = int(_loc_23);
                _loc_24 = Math.floor(_loc_32 * 0.3);
                _loc_4["accurate"] = int(_loc_24);
            }
            else if (param3 == 3)
            {
                _loc_4["maxHp"] = int(_loc_14 * Roledata.TaoistHpCoe);
                _loc_4["heathRecover"] = int(_loc_14 * Roledata.TaoistHpCoe / 120 * 0);
                _loc_26 = _loc_14 * 0.3 * Roledata.TaoistMpCoe;
                _loc_4["magicRecover"] = int(_loc_14 * Roledata.TaoistHpCoe / 108 + 20 + _loc_26 * _loc_25);
                _loc_4["maxMp"] = int(_loc_26);
                _loc_15 = _loc_13 * _loc_10 * _loc_10 / 10000000 / (1 - _loc_11) / (1 + _loc_12);
                _loc_16 = _loc_15 * Roledata.AttackRate;
                _loc_17 = _loc_16 * 2 / (1 + _loc_8 + (1 - _loc_8) * _loc_7 / 9);
                _loc_18 = _loc_17 * _loc_8;
                _loc_27 = _loc_17 * 2 / 3;
                _loc_28 = _loc_18 * 2 / 3;
                _loc_4["phyLowAtt"] = int(_loc_28);
                _loc_4["phyHighAtt"] = int(_loc_27);
                _loc_4["magicLowAtt"] = int(_loc_28);
                _loc_4["magicHighAtt"] = int(_loc_27);
                _loc_4["taoLowAtt"] = int(_loc_18);
                _loc_4["taoHighAtt"] = int(_loc_17);
                _loc_19 = _loc_15 * (1 + _loc_12) * _loc_11;
                _loc_20 = _loc_19 * Roledata.DefendRate;
                _loc_21 = _loc_20 / (_loc_9 + 0.5 - _loc_9 * 0.5);
                _loc_22 = _loc_21 * _loc_9;
                _loc_29 = 1 + param1 * Roledata.TaoistPhyCoe;
                _loc_30 = 1 + param1 * Roledata.TaoistMigCoe;
                _loc_4["phyLowDef"] = int(_loc_22 * _loc_29);
                _loc_4["phyHighDef"] = int(_loc_21 * _loc_29);
                _loc_4["magicLowDef"] = int(_loc_22 * _loc_30);
                _loc_4["magicHighDef"] = int(_loc_21 * _loc_30);
                _loc_31 = (param1 / 7 + 1 + param2 + 10) * 2;
                _loc_32 = _loc_31 / 0.97;
                _loc_23 = Math.floor(_loc_31 * 0.3);
                _loc_4["dodge"] = int(_loc_23);
                _loc_24 = Math.floor(_loc_32 * 0.3);
                _loc_4["accurate"] = int(_loc_24);
            }
            return _loc_4;
        }// end function

    }
}
